182

     # Использование виртуального окружения


Введение

При работе над отдельными py-проектами может получиться так, что для запуска одного проекта требуется одна версия какого-либо модуля, а для запуска второго проекта - другая.

Именно поэтому зависимости проекта лучше ставить не в систему, засоряя её, а в отдельное виртуальное окружение Python-а, которое будет использоваться для запуска конкретного проекта.

Когда работа над проектом завершена, просто удаляем папку с виртуальным окружением, тем самым освобождая место в системе.

А если проект потребуется запустить, то все зависимости устанавливаем командой:

pip3 install -r requirenments.txt

Для этого, конечно же, требуется вести проект корректно, дополняя файл requirenments.txt всеми модулями, которые подключаются в проект во время разработки.


Установка виртуального окружения

Пробуем следующие команды или самостоятельно ищем название пакета для вашей ОС:

sudo apt install python3-virtualenv
sudo apt-get install python3-module-virtualen

Создание виртуального окружения

Придумываем название папки, которая будет использоваться в качестве виртуального окружения и создаём её, напр., в разрабатываемом проекте:

virtualenv my_project_env

Если система выдаёт ошибку, что команда virtualenv не существует, пробуем установить через pip3 install virtualenv и повторяем попытку.

Данная команда:

  • создаст каталог my_project_env
  • создаст необходимые файлы виртуального окружения внутри этого каталога

После чего активируем виртуальное окружение:

source my_project_env/bin/activate

Создание окружения завершено. Можно запускать проект:

python3 my_project_app.py

Теперь проект будет подтягивать все зависимости из созданного окружения и игнорировать системные.


Как это работает

Виртуальное окружение активируется для текущей сессии bash. Если мы закроем терминал, то виртуальное окружение нужно будет заново активировать командой:

source my_project_env/bin/activate

Если этого не сделать, то при запуске проекта командой python3 my_project_app.py зависимости будут искаться в системе, а не в папке ./my_project_env/lib.


Удаление виртуального окружения

Если работа завершена и/или виртуальное окружение больше не требуется, то просто удаляем каталог my_project_env.

Все модули, которые используются для запуска проекта, хранятся именно в этой директории.